home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus 1996 #3 / Amiga Plus CD - 1996 - No. 3.iso / demo-versionen / databaseprofessional_v3.0 / clipart / clipbase.rexx < prev    next >
OS/2 REXX Batch file  |  1995-08-11  |  4KB  |  173 lines

  1. /* ClipBase, Clipverwaltung mit DataBase Professional, 11.08.95, Jörg Richter */
  2.  
  3. OPTIONS RESULTS
  4.  
  5. RenderScreen = "Amiga 167936 640 256 4"
  6.                    /* dispID  x   y  colors */
  7. DIAsize      = 120  /* Vorschaugröße */
  8. TempDefaults = "T:ADPro.defaults"
  9. NL           = D2C(10)
  10. device       = "CON:0/0/640/200/ERRORS/WAIT/CLOSE/SCREENDataBase"
  11.  
  12. ADDRESS DataBase DBTOFRONT
  13.  
  14. ADDRESS COMMAND
  15. 'C:Requestfile > ENV:picpath DRAWERSONLY TITLE="Quellpfad der Bilder" NOICONS PUBSCREEN DataBase'
  16. IF RC = 0 THEN DO
  17.   'C:Requestfile > ENV:thumb DRAWER DBPRO:ClipArt DRAWERSONLY TITLE="Pfad für Vorschaubilder" NOICONS PUBSCREEN DataBase'
  18.   IF RC = 0 THEN DO
  19.     'Echo > ENV:thumbpath $thumb'
  20.     'Echo > ENV:source $picpath'
  21.     ADDRESS DataBase Message "Erzeuge Verzeichnisstruktur für Vorschaubilder ..."
  22.     'List > T:script $picpath dirs all lformat="$source %p%n $thumbpath"'
  23.     CALL MakeDirs
  24.     ADDRESS DataBase Message "Scanne Quellpfad der Bilder ..."
  25.     'List > T:script $picpath P=~(#?.info) files all lformat="$thumbpath $source %p%n %l"'
  26.     ADDRESS DataBase
  27.     Request "_IFF|_GIF|_Abbruch" "*** ADPro starten ***" || NL || NL || "Format für die Vorschaubilder ?"
  28.     IF RC > 0 THEN DO
  29.       IF RC = 1 THEN
  30.         saveop = "IFF"
  31.       ELSE
  32.         saveop = "GIF"
  33.       CALL PicBase
  34.     END
  35.     ADDRESS COMMAND
  36.     'C:Delete > NIL: T:script'
  37.   END
  38. END
  39.  
  40. EXIT
  41.  
  42.  
  43. MakeDirs:
  44.  
  45. ok = Open(file,'ENV:thumbpath',R)
  46. dest = ReadLn(file)
  47. 'C:MakeDir > NIL: ' || LEFT(dest,Length(dest)-1)
  48. ok = Close(file)
  49.  
  50. ok = Open(file,"T:script",R)
  51. IF ok THEN DO
  52.   weiter = 0
  53.   DO WHILE weiter = 0
  54.     str = ReadLn(file)
  55.     IF Length(str) > 0 THEN DO
  56.       PARSE VAR str source dir dest .
  57.       dir = DelStr(dir,1,Length(source))
  58.       'C:MakeDir > NIL: ' dest || dir
  59.     END
  60.     weiter = EOF(file)
  61.   END
  62.   ok = Close(file)
  63. END
  64. RETURN
  65.  
  66.  
  67. PicBase:
  68.  
  69. weiter = 0
  70. DO WHILE weiter = 0
  71.   weiter = Show('P','ADPro')
  72.   IF weiter = 0 THEN DO
  73.     ADDRESS DataBase
  74.     Request "_Gestartet|_Abbruch" "Bitte ADPro starten ..."
  75.     IF RC = 0 THEN EXIT
  76.     ADDRESS
  77.   END
  78. END
  79.  
  80. ok = Open(file,"T:script",R)
  81. IF ok THEN DO
  82.   ADDRESS "ADPro" SAVE_DEFAULTS TempDefaults
  83.   ok = Open(out,device,W)
  84.   cnt = WriteLn(out,"Start : " || TIME())
  85.   reset = TIME(r)
  86.   weiter = 0
  87.   DO WHILE weiter = 0
  88.     str = ReadLn(file)
  89.     IF Length(str) > 0 THEN
  90.       CALL CreateThumb
  91.     weiter = EOF(file)
  92.   END
  93.   ok = Close(file)
  94.   ADDRESS "ADPro" LOAD_DEFAULTS TempDefaults
  95.   cnt = WriteLn(out,"Finish: " || TIME())
  96.   cnt = WriteLn(out,D2C(10) || "Convertion time (s): " || TIME(e))
  97.   ok = Close(out)
  98. END
  99. RETURN
  100.  
  101.  
  102. CreateThumb:
  103.  
  104. PARSE VAR str path source bild length .
  105. /*
  106.    path   = Pfad für das erzeugte Thumbnail
  107.    source = Quellpfad der Bilder
  108.    bild   = Pfad und Name des eigentlichenen Bildes
  109.    length = Dateilänge des Bildes
  110. */
  111.  
  112. IF RIGHT(path,1) ~= "/" THEN DO
  113.   IF RIGHT(path,1) ~= ":" THEN
  114.     path = path || "/"
  115. END
  116.  
  117. path = path || DelStr(bild,1,Length(source))
  118.  
  119. pos = MAX(LastPos("/",bild),LastPos(":",bild))+1
  120. bildname = SubStr(bild,pos,Length(bild)-pos+1)    /* Bildname ermitteln */
  121. pos = LastPos(".",bildname)
  122. IF pos > 0 THEN
  123.   bildname = LEFT(bildname,pos) || saveop
  124.  
  125. path = SubStr(path,1,Length(path)-Length(bildname))
  126.  
  127. IF Exists(path || bildname) = 1 THEN /* Falls Thumbnail schon existiert */
  128.   RETURN                             /* weiter mit nächsten Bild        */
  129.  
  130. ADDRESS DataBase Message "Bearbeite " || bild || " ..."
  131.  
  132. ADDRESS "ADPro"
  133.  
  134. PSTATUS "LOCKED"
  135. DITHER 1
  136. LOADER "UNIVERSAL" bild
  137. IF RC ~= 0 THEN DO
  138.   cnt = WriteLn(out,"Loading error: " || bild)
  139.   RETURN
  140. END
  141. XSIZE
  142. width = ADPRO_RESULT
  143. YSIZE
  144. height = ADPRO_RESULT
  145. IF width > height THEN DO
  146.   yy = (height/width) * DIAsize
  147.   xx = DIAsize
  148.   END
  149. ELSE DO
  150.   xx = (width/height) * DIAsize
  151.   yy = DIAsize
  152.   END
  153. ABS_SCALE xx yy
  154. SET_RENDER_MODE RenderScreen
  155. EXECUTE
  156. SAVER saveop path || bildname "IMAGE"
  157. IF RC ~= 0 THEN DO
  158.   cnt = WriteLn(out,"Saving error : " || path || bildname)
  159.   RETURN
  160. END
  161.  
  162. ADDRESS DataBase
  163.  
  164. Add
  165. PutData $F1 bild
  166. PutData $F2 length
  167. PutData $F3 width || "x" || height
  168. IF Compare(LEFT(path,6),"DBPRO:") = 0 THEN path = DelStr(path,1,6)
  169. PutData $F4 path || bildname
  170.  
  171. RETURN
  172.  
  173.